package interfacedecomunicacao;

import java.rmi.Remote;
import java.rmi.RemoteException;
import java.util.ArrayList;
import java.util.HashSet;

import jogoBolaoeArmazenador.rn.Bolao;
import jogoBolaoeArmazenador.rn.Usuario;

public interface ServerInterface extends Remote{

	public Usuario autenticar(String login, char[] senha, ClientInterface client) throws RemoteException, UsuarioInexistenteException;

	public HashSet<Bolao> getBoloesAbertos(Usuario user) throws RemoteException;

	public HashSet<Bolao> recuperaHistorico(Usuario user) throws RemoteException;

	public void criaBolao(Bolao bolao, Usuario administrador) throws RemoteException;

	public HashSet<Bolao> getBoloesQueAdministro(Usuario user) throws RemoteException;

	public HashSet<Bolao> getBoloesDosQuaisParticipo(Usuario user) throws RemoteException;

	public void persistirParticipacao(Bolao _bolaoParaEntrar, Usuario _usuarioQueChamou, ArrayList<Integer> cotasEscolhidas) throws RemoteException;

	public boolean cadastraUsuario(Usuario novo) throws RemoteException, LoginJaExistenteException;
	
	public void armazenarResultado(Bolao bolao, HashSet<Integer> resultado) throws RemoteException;
	
	public ArrayList<String> obterInformacaoTelaInicial(Usuario user) throws RemoteException;
	
}
